<!DOCTYPE html>
<html lang="ja">

<head>
  <meta charset="utf-8">
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <meta http-equiv="Content-Style-Type" content="text/css">
  <script src='../bbs.js'></script>

  <!-- Global site tag (gtag.js) - Google Analytics -->
  <script async src="https://www.googletagmanager.com/gtag/js?id=UA-120820034-1"></script>

  <link href="../bbs.css" type="text/css" rel="stylesheet">
  <link rel="shortcut icon" href="/favicon.ico">
  <title>固定長ファイルで指定開始位置へジャンプするには | サクラエディタ過去ログ</title>
</head>
<body>
<ul class="side">
        <a href="./" class="toindex">◀一般トップへ</a>
        <li><div class="list-title">
    <span class="no">6451</span>
    <a class="thread-title" href="6451.html#6451">固定長ファイルで指定開始位置へジャンプするには</a></div>
    <ul><li><div class="list-title">
    <span class="no">6453</span>
    <a class="thread-title" href="6451.html#6453">Re:固定長ファイルで指定開始位置へジャンプするには</a></div>
    <ul><li><div class="list-title">
    <span class="no">6455</span>
    <a class="thread-title" href="6451.html#6455">Re2:固定長ファイルで指定開始位置へジャンプするには</a></div>
    <ul><li><div class="list-title">
    <span class="no">6459</span>
    <a class="thread-title" href="6451.html#6459">Re3:固定長ファイルで指定開始位置へジャンプするには</a></div>
    <ul><li><div class="list-title">
    <span class="no">6460</span>
    <a class="thread-title" href="6451.html#6460">Re4:固定長ファイルで指定開始位置へジャンプするには</a></div>
    <ul><li><div class="list-title">
    <span class="no">6461</span>
    <a class="thread-title" href="6451.html#6461">Re5:固定長ファイルで指定開始位置へジャンプするには</a></div>
    <ul><li><div class="list-title">
    <span class="no">6462</span>
    <a class="thread-title" href="6451.html#6462">Re6:固定長ファイルで指定開始位置へジャンプするには</a></div>
    <ul><li><div class="list-title">
    <span class="no">6463</span>
    <a class="thread-title" href="6451.html#6463">Re7:固定長ファイルで指定開始位置へジャンプするには</a></div>
    <ul><li><div class="list-title">
    <span class="no">6465</span>
    <a class="thread-title" href="6451.html#6465">Re8:固定長ファイルで指定開始位置へジャンプするには</a></div>
    </li><li><div class="list-title">
    <span class="no">6466</span>
    <a class="thread-title" href="6451.html#6466">Re8:固定長ファイルで指定開始位置へジャンプするには</a></div>
    </li><li><div class="list-title">
    <span class="no">6467</span>
    <a class="thread-title" href="6451.html#6467">Re8:固定長ファイルで指定開始位置へジャンプするには</a></div>
    </li><li><div class="list-title">
    <span class="no">6468</span>
    <a class="thread-title" href="6451.html#6468">Re8:固定長ファイルで指定開始位置へジャンプするには</a></div>
    </li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li><li><div class="list-title">
    <span class="no">6471</span>
    <a class="thread-title" href="6451.html#6471">Re:固定長ファイルで指定開始位置へジャンプするには</a></div>
    </li></ul></li>
    </ul><ul class="main"><li><section><h1 id=6451>
    <span class="no">[6451]</span>
    <a class="thread-title" href="#6451">固定長ファイルで指定開始位置へジャンプするには</a>
    <span class="author">使い始め</span>
    <time datetime="2007-11-08T11:18:43">2007年11月08日 11:18</time></h1>
    <div class="body">固定長ファイルで指定開始位置へジャンプする方法はあるのでしょうか。<br>画面は、折り返さない設定にした上で、（１レコード１行）<br>たとえば、先頭から「１５６９桁目」へカーソルをジャンプ<br>させたいのです。<br>過去ログも、メニューも片っ端から探して見たのですが、<br>見つけられませんでした。<br>どなたか教えてください。</div></section>
    <ul><li><section><h1 id=6453>
    <span class="no">[6453]</span>
    <a class="thread-title" href="#6453">Re:固定長ファイルで指定開始位置へジャンプするには</a>
    <span class="author">じゅうじ</span>
    <time datetime="2007-11-11T18:36:24">2007年11月11日 18:36</time></h1>
    <div class="body">▼ 使い始めさん<br>&gt; 画面は、折り返さない設定にした上で、（１レコード１行）<br><br>画面は折り返す。<br>その上で、下のステータスバーで桁位置を確認では、どうでしょう。</div></section>
    <ul><li><section><h1 id=6455>
    <span class="no">[6455]</span>
    <a class="thread-title" href="#6455">Re2:固定長ファイルで指定開始位置へジャンプするには</a>
    <span class="author">使い始め</span>
    <time datetime="2007-11-12T09:19:44">2007年11月12日 09:19</time></h1>
    <div class="body">回答ありがとうございます。<br>数えやすい桁数で折り返してみてはやっていたのですが、<br>扱っているのが、とても長いデータで、検索したい場所も<br>多々あるので、効率がわるく、このサイトで質問してみたわけです・・・<br>やはり方法はないようですね・・・</div></section>
    <ul><li><section><h1 id=6459>
    <span class="no">[6459]</span>
    <a class="thread-title" href="#6459">Re3:固定長ファイルで指定開始位置へジャンプするには</a>
    <span class="author">げんた</span>
    <time datetime="2007-11-13T01:45:25">2007年11月13日 01:45</time></h1>
    <div class="body">数値を問い合わせて，入力した桁数右に移動するマクロって作れないでしょうか．<br><br>viなら<br>1569l<br>でOKなのに...<br><br>って私が言ってどうする．<br></div></section>
    <ul><li><section><h1 id=6460>
    <span class="no">[6460]</span>
    <a class="thread-title" href="#6460">Re4:固定長ファイルで指定開始位置へジャンプするには</a>
    <span class="author">maru</span>
    <time datetime="2007-11-13T02:48:43">2007年11月13日 02:48</time></h1>
    <div class="body">▼ 使い始めさん<br><br>こんなんで役に立ちますかね？<br><br>'-------------------<br>'GoToColm.vbs<br>'指定の桁に移動<br>'-------------------<br>Option Explicit<br>Call main<br>Private Sub main()<br>    '移動先の桁を取得<br>    sNum = InputBox("移動後の桁位置を指定してください．" _<br>                    , "指定の桁へ移動")<br><br>    '数値以外ならキャンセル<br>    If Not IsNumeric(sNum) Then<br>        MsgBox "数値以外が入力されました．"<br>        Exit Sub<br>    End If<br>    iNum = CLng(sNum)<br><br>    '行末桁より大きければ行末へ移動<br>    Editor.GoLineEnd<br>    iMax = CLng(ExpandParameter("$x"))<br>    If iNum &gt;= iMax Then Exit Sub<br> <br>    'カーソル位置が指定桁と同じか大きくなるまで右移動<br>    Editor.GoLineTop 1<br>    Do While CLng(ExpandParameter("$x")) &lt;= iNum<br>        Editor.Right<br>    Loop<br> <br>End Sub<br></div></section>
    <ul><li><section><h1 id=6461>
    <span class="no">[6461]</span>
    <a class="thread-title" href="#6461">Re5:固定長ファイルで指定開始位置へジャンプするには</a>
    <span class="author">じゅうじ</span>
    <time datetime="2007-11-14T07:26:34">2007年11月14日 07:26</time></h1>
    <div class="body">▼ maruさん<br>&gt; ▼ 使い始めさん<br>Ｗｉｋｉに貼り付けました。左右移動に改良。<br><br>http://sakura.qp.land.to/?Macro/投稿/183<br>(11/15 追加)<br></div></section>
    <ul><li><section><h1 id=6462>
    <span class="no">[6462]</span>
    <a class="thread-title" href="#6462">Re6:固定長ファイルで指定開始位置へジャンプするには</a>
    <span class="author">使い始め</span>
    <time datetime="2007-11-14T15:55:24">2007年11月14日 15:55</time></h1>
    <div class="body">▼ maruさん<br>回答ありがとうございます。<br>せっかく回答いただいたのに<br>サクラエディタ自体まだほとんど使ったことがなく、<br>マクロどころかvbスクリプトを書いたことがないので<br>使い方がよくわかりません。<br>下記の手順で実行したらエラーがでました。<br><br>１．提示していただいた、スクリプト文をメモ帳に貼り付け、<br>    拡張子をvbsにする。<br>２．メニューからキーマクロの読み込みを行い、<br>３．メニューからキーマクロの実行をしたら<br>４．桁数を入力するinputboxはでてきたのですが、<br>５．入力後ＯＫをおしたら、実行時エラー[line5]この変数は<br>    宣言されていません。:'sNum'とでてＯＫをおすと<br>６．WSHのメッセージで実行に失敗しました。<br>    と出ました。<br><br>どこの設定がもれているのでしょうか。<br>http://www.geocities.jp/maru3128/SakuraMacro/<br>や他のヘルプをみてはみたものの、よくわかっていないので<br>質問するのも申し訳ないのですが・・・教えてください。</div></section>
    <ul><li><section><h1 id=6463>
    <span class="no">[6463]</span>
    <a class="thread-title" href="#6463">Re7:固定長ファイルで指定開始位置へジャンプするには</a>
    <span class="author">なすこじ</span>
    <time datetime="2007-11-14T18:38:21">2007年11月14日 18:38</time></h1>
    <div class="body">▼ 使い始めさん<br>変数の宣言が必要みたいです。<br>Private Sub main()の下に3行追加してみて下さい。<br>   Dim sNum<br>   Dim iNum<br>   Dim iMax<br><br>物理位置で移動チェックしているので、TABや全角文字があるとずれませんかね？<br></div></section>
    <ul><li><section><h1 id=6465>
    <span class="no">[6465]</span>
    <a class="thread-title" href="#6465">Re8:固定長ファイルで指定開始位置へジャンプするには</a>
    <span class="author">なすこじ</span>
    <time datetime="2007-11-15T10:55:12">2007年11月15日 10:55</time></h1>
    <div class="body">&gt; 物理位置で移動チェックしているので、TABや全角文字があるとずれませんかね？<br><br>ステータスバーの桁表示とずれるのでは？と思ったのですが、全角文字の方は2バイト<br>のままなのでずれるわけがないですね。アホを露呈してしまった (^^;<br><br>あと、せっかくなので冗談のような仕様ですが作ってみたのをアップします。<br>・移動したい桁数分の半角文字列の行を挿入して移動場所を特定します<br>・移動場所の手前の文字列を検索文字列として取得します。<br>・アンドゥで編集をキャンセルします<br>・特定した場所へ検索にて移動します<br><br>★印の所は半角文字列への置き換えが必要です<br><br>// --- ここから ---<br><br>// JumpColumn.ppa by nasukoji<br>// 実行にはPPA.DLLが必要です。<br>var<br>    colm : integer;<br>    lineP : integer;<br>    lineL : integer;<br>    maxSSize : integer;<br>    cNum1 : integer;<br>    cNum2 : integer;<br>    count : integer;<br>    xPos : integer;<br>    xPos2 : integer;<br>    i : integer;<br>    tempStr : string;<br>    searchStr : string;<br><br>begin<br>    maxSSize := 100;        // 検索文字列の制限サイズ（最大値は260）<br><br>    // 現在の行を記憶する<br>    lineP := StrToInt( S_ExpandParameter( '$y' ) );     // 物理行<br><br>    S_BeginSelect();<br>    lineL := S_GetSelectColmFrom();     // レイアウト行<br>    S_CancelMode();<br><br>    // 移動位置を取得する<br>    cNum1 := StrToInt( InputBox( '桁位置ジャンプ', '桁番号', '' ) );<br>    if cNum1 &lt;= 0 then Exit;    // 0以下または数字でない時は終了<br>    cNum1 := cNum1 - 1;         // 先頭からcNum1文字右へ移動するので-1する<br><br>    cNum2 := 0;<br>    if cNum1 &gt; maxSSize then cNum2 := cNum1 - maxSSize;<br><br>    // 改行を挿入する<br>    S_GoLineTop(1);     // 行頭（レイアウト行）へ移動<br>    S_Char( 13 );       // レイアウト行の途中を切断（途中でないならただの改行）<br>    S_Char( 13 );       // 検索文字列開始位置用<br>    S_Char( 13 );       // 検索文字列終了位置用（ここが指定の桁位置）<br>    S_Up();<br><br>    // 指定桁数-1文字分の半角文字列を作成する（検索文字列の終わり）<br>    tempStr := '';<br><br>    while cNum1 &gt;= 1000 do<br>        begin<br>            // 1000文字の半角文字列を追加<br>            tempStr := tempStr + ★半角1000文字★;<br>            cNum1 := cNum1 - 1000;<br>        end;<br><br>    while cNum1 &gt;= 100 do<br>        begin<br>            // 100文字の半角文字列を追加<br>            tempStr := tempStr + ★半角100文字★;<br>            cNum1 := cNum1 - 100;<br>        end;<br><br>    while cNum1 &gt;= 10 do<br>        begin<br>            // 10文字の半角文字列を追加<br>            tempStr := tempStr + '        10';<br>            cNum1 := cNum1 - 10;<br>        end;<br><br>    while cNum1 &gt; 0 do<br>        begin<br>            // 1文字追加<br>            tempStr := tempStr + ' ';<br>            cNum1 := cNum1 - 1;<br>        end;<br><br>■ --- つづく ---</div></section>
    </li><li><section><h1 id=6466>
    <span class="no">[6466]</span>
    <a class="thread-title" href="#6466">Re8:固定長ファイルで指定開始位置へジャンプするには</a>
    <span class="author">なすこじ</span>
    <time datetime="2007-11-15T10:57:37">2007年11月15日 10:57</time></h1>
    <div class="body">■ --- つづき ---<br>    // 文字列を出力する<br>    S_InsText( tempStr );<br>    S_BeginSelect();<br>    colm := S_GetSelectColmFrom();      // 桁位置（レイアウト行）を記憶する<br>    S_CancelMode();<br>    S_Up();<br><br>    // 検索文字列作成用の半角文字列を作成する（検索文字列の先頭）<br>    tempStr := '';<br>    cNum1 := cNum2;<br><br>    while cNum1 &gt;= 1000 do<br>        begin<br><br>            // 1000文字の半角文字列を追加<br>            tempStr := tempStr + ★半角1000文字★;<br>            cNum1 := cNum1 - 1000;<br>        end;<br><br>    while cNum1 &gt;= 100 do<br>        begin<br>            // 100文字の半角文字列を追加<br>            tempStr := tempStr + ★半角100文字★;<br>            cNum1 := cNum1 - 100;<br>        end;<br><br>    while cNum1 &gt;= 10 do<br>        begin<br>            // 10文字の半角文字列を追加<br>            tempStr := tempStr + '        10';<br>            cNum1 := cNum1 - 10;<br>        end;<br><br>    while cNum1 &gt; 0 do<br>        begin<br>            // 1文字追加<br>            tempStr := tempStr + ' ';<br>            cNum1 := cNum1 - 1;<br>        end;<br><br>    // 文字列を出力する<br>    if cNum2 &gt; 0 then S_InsText( tempStr );<br>    S_GoLineEnd();<br><br>    // 桁位置までの検索用文字列として切り出す<br>    S_Down();<br>    S_Down();<br>    S_Up_Sel();<br>    S_GoLineEnd_Sel();<br>    xPos := StrToInt( S_ExpandParameter( '$x' ) );      // 桁位置（物理行）を取得する<br>    S_Down_Sel();<br>    xPos2 := StrToInt( S_ExpandParameter( '$x' ) );     // 桁位置（物理行）を取得する<br>    searchStr := S_GetSelectedString( 0 );<br><br>■ --- つづく ---<br></div></section>
    </li><li><section><h1 id=6467>
    <span class="no">[6467]</span>
    <a class="thread-title" href="#6467">Re8:固定長ファイルで指定開始位置へジャンプするには</a>
    <span class="author">なすこじ</span>
    <time datetime="2007-11-15T10:58:06">2007年11月15日 10:58</time></h1>
    <div class="body">■ --- つづき ---<br>    // 編集を無かったことにする<br>    S_Undo();           // 文字列出力をアンドゥ<br>    if cNum2 &gt; 0 then S_Undo();     // 文字列出力をアンドゥ<br>    S_Undo();           // 改行をアンドゥ<br>    S_Undo();           // 改行をアンドゥ<br>    S_Undo();           // 改行をアンドゥ<br><br>    // 指定桁数より行が短い場合、行末へカーソルを移動して終了する<br>    S_GoLineEnd();<br>    if xPos &gt; StrToInt( S_ExpandParameter( '$x' ) ) then Exit;<br><br>    // 選択範囲が無い場合、行頭へカーソルを移動して終了する<br>    S_GoLineTop(1);<br>    if xPos2 = 1 then Exit;<br><br>    // 文字列を検索する<br>    while lineP = StrToInt( S_ExpandParameter( '$y' ) ) do<br>        begin<br>            S_SearchNext( searchStr, 18 );      // 文字列を検索<br>            S_Right();<br><br>            S_BeginSelect();<br>            xPos := S_GetSelectColmFrom();      // 桁位置（レイアウト行）を取得する<br>            S_CancelMode();<br><br>            // 指定位置、または次の検索では指定位置を越える<br>            if colm &lt; xPos + maxSSize then Break;<br>        end;<br><br>    S_SearchClearMark(0);   // 検索マークのクリア<br><br>    // 手前でヒットした場合の位置補正<br>    // 手前でヒットすると次の検索では指定位置を通り過ぎてしまうので、<br>    // ここからは検索ではなく1文字送りで指定位置まで移動する。<br>    if xPos &lt; colm then<br>        begin<br>            while xPos &lt; colm do<br>                begin<br>                    S_Right();<br>                    S_BeginSelect();<br>                    xPos := S_GetSelectColmFrom();<br>                    S_CancelMode();<br>                end;<br><br>            // 全角文字・TAB文字の途中用の再補正<br>            if xPos &gt; colm then S_Left();<br>        end;<br><br>    // 見つからなかったらエラー（あり得ないはず）<br>    if lineP &lt;&gt; StrToInt( S_ExpandParameter( '$y' ) ) then<br>        begin<br>            S_Jump( lineL, 0 );     // カーソルを戻す<br>            MessageBox( 'ジャンプに失敗しました', 'error', 0 );<br>//          Exit;<br>        end;<br>end;<br><br>// --- ここまで ---<br></div></section>
    </li><li><section><h1 id=6468>
    <span class="no">[6468]</span>
    <a class="thread-title" href="#6468">Re8:固定長ファイルで指定開始位置へジャンプするには</a>
    <span class="author">使い始め</span>
    <time datetime="2007-11-15T18:15:03">2007年11月15日 18:15</time></h1>
    <div class="body">▼ なすこじさん<br>変数宣言したらできました！<br>ありがとうございました！！！！<br><br>これで、ながったらしいデータの確認が早くできます。助かりました。<br>今の仕事が一段落したら、サクラエディタというものをじっくり調べて<br>みようと思いますが、取り急ぎご報告まで。<br></div></section>
    </li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li><li><section><h1 id=6471>
    <span class="no">[6471]</span>
    <a class="thread-title" href="#6471">Re:固定長ファイルで指定開始位置へジャンプするには</a>
    <span class="author">通りすがり</span>
    <time datetime="2007-11-16T23:14:28">2007年11月16日 23:14</time></h1>
    <div class="body">▼ 使い始めさん<br>&gt; たとえば、先頭から「１５６９桁目」へカーソルをジャンプ<br><br>すでにマクロで解決されたようですので、無用かとは思いますが、<br>コマンドラインオプションで、「-X=1569」とか、<br><br>filename.log(1,1569): <br><br>とか書いてタグジャンプってのはダメですかね？<br>同じような状況で自分がよく使う手です。<br></div></section>
    </li></ul></li></ul></body></html>